Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- Code standards



  Install Kubernetes with minikube and docker on Ubuntu

When someone just wants to play around Kubernetes on its local environment without accessing to Cloud provider resources, one can set Kubernetes up on local environment with minikube with single node mode. This post will provide a simple guideline on how to set up KUbernetes with minikube and docker on Ubuntu. Before all the steps can be started, you may need to first set up kubectl which is a command line tool to operate on Kubernetes resources. Post that, can ensure that docker is installed on...

   KUBERNETES,MINIKUBE,DOCKER,UBUNTU     2021-06-01 05:37:40

  Introducing the for-if anti-pattern

Over the years, I've seen a bunch of coding anti-patterns. I figured maybe I'll share a few. Today, I'll introduce what I'm calling the for-if anti-pattern, also known as "We'll sell you the whole seat, but you'll only need the edge." This is a special case of the for-case anti-pattern, where all but one of the cases is null. for (int i = 0; i < 100; i++) { if (i == 42) { do_something(i); } } This can naturally be simplified to do_something(42); The for-if anti-pattern arises in ma...

   Programming,Anti-pattern,for-if,efficiency     2012-02-02 10:18:15

  errGroup in GoLang explained

Today, let's talk about the usage and applicable scenarios of errGroup, which is often used. Why is it useful? Generally, when we use goroutine, we cannot return a value. If you want to pass out the result of the goroutine execution, you usually have to use the channel. The errGroup package is suitable if you want to know when the goroutine you opened encounters an error during execution and stop working, and I need to know the error value. errGroup usage The package needs to be downloaded and i...

   GOLANG,ERRGROUP,WAITHROUP,CONCURRENCY     2023-05-27 23:58:20

  Create temp file in Bash using mktemp and trap

When working on Linux Bash, sometimes there is need to create temporary file. A common way of creating temp file on Linux is creating some file in /tmp directory. However there is security risk when creating temp file in /tmp directory. This post will show how to securely create temp file in Linux Bash. When creating file in /tmp directory, there are some security risks. This directory can be accessed by any user on the system, any user can write data into this directory as well. The files creat...

   LINUX,MKTEMP,TRAP,TEMP FILE     2019-12-30 23:28:23

  Do scientists really need a PhD?

Young scientists at a Chinese genomics institute are foregoing conventional postgraduate training for the chance to be part of major scientific initiatives. Is this the way of the future?The approach to extended postgraduate training varies from country to country. The United States and Europe, for example, have long believed that students need to finish a multiyear programme of postgraduate work before they can fully participate in the front rank of research, whether in industry or acad...

   Career,PhD,Scientist,Relationship,BGI     2012-01-02 08:19:32

  Be careful about printing error as string in GoLang

In GoLang, we can format and produce string using fmt.Printf(), just like C, GoLang also supports format verbs like %s, %d which can be placeholder for different types of values. But please pay attention when printing error as string so that you will not fall into some trap. Let's first take an example code snippet and see what trap we are talking about. package main import "fmt" type A string func (a A) Error() string { return fmt.Sprintf("%s is an error", a) } func main() { a := A("hello...

   STACKOVERFLOW,GOLANG,FMT     2019-01-23 09:17:15

  11 Important Database designing rules

Introduction Before you start reading this article let me confirm that I am not a guru in database designing. The below 11 points which are listed are points which I have learnt via projects, my own experiences and my own reading. I personally think it has helped me a lot when it comes to DB designing. Any criticism welcome. The reason why I am writing a full blown article is, when developers sit for designing a database they tend to follow the three normal forms like a silver bullet. They...

   Database design,Rules,OLAP     2012-04-12 05:51:38

  Some frequently used ES6 code snippets

Below are a list of ES6 code snippets which are used frequently. Hope that it will be helpful. 1. Shuffle array elements let arr = [67, true, false, '55'] arr = arr.sort(() => 0.5 - Math.random()) console.log(arr) // [ '55', 67, false, true ] 2. Remove characters which are not numbers const str = 'xieyezi 23213 is 95994 so hansome 223333' const numbers = str.replace(/\D/g, '') console.log(numbers) // 2321395994223333 3. Reverse sequence or words const sentence = 'xieyezi js so handsome, lol.'...

   JAVASCRIPT,ES6,CODE SNIPPET,TIPS     2022-04-10 07:56:07

  Automatically post to Facebook from PHP script

Facebook is currently on of the most important publishing and traffic generating sources for many websites. Manually Cross publishing content on your own site and Facebook seems like a lot of extra work. This post guides you through the creation of a Facebook application that can automatically post messages and other types of content on your Facebook wall. Getting started Building a php script that automatically posts status updates on your wall requires the following steps: Download Faceboo...

   PHP,Facebook,API,Auto post,OAuth     2012-02-27 09:03:00

  Supercolliding a PHP array

Did you know that inserting 2^16 = 65536 specially crafted values into a normal PHP array can take 30 seconds? Normally this would take only 0.01 seconds. This is the code to reproduce it: <?php echo '<pre>'; $size = pow(2, 16); // 16 is just an example, could also be 15 or 17 $startTime = microtime(true); $array = array(); for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) { $array[$key] = 0; } $endTime = microtime(true); echo 'Inserting...

   PHP,Array,hashtable,Slow,Colliding     2011-12-29 09:02:01